<?php
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Server
 * @copyright  Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */

/**
 * Return value reflection
 *
 * Stores the return value type and description
 *
 * @category   Zend
 * @package    Zend_Server
 * @subpackage Reflection
 * @copyright  Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version $Id: ReturnValue.php 16210 2009-06-21 19:22:17Z thomas $
 */
class Zend_Server_Reflection_ReturnValue
{
	/**
	 * Return value type
	 * @var string
	 */
	protected $_type;

	/**
	 * Return value description
	 * @var string
	 */
	protected $_description;

	/**
	 * Constructor
	 *
	 * @param string $type Return value type
	 * @param string $description Return value type
	 */
	public function __construct($type = 'mixed', $description = '')
	{
		$this->setType($type);
		$this->setDescription($description);
	}

	/**
	 * Retrieve parameter type
	 *
	 * @return string
	 */
	public function getType()
	{
		return $this->_type;
	}

	/**
	 * Set parameter type
	 *
	 * @param string|null $type
	 * @return void
	 */
	public function setType($type)
	{
		if (!is_string($type) && (null !== $type)) {
			require_once 'Zend/Server/Reflection/Exception.php';
			throw new Zend_Server_Reflection_Exception('Invalid parameter type');
		}

		$this->_type = $type;
	}

	/**
	 * Retrieve parameter description
	 *
	 * @return string
	 */
	public function getDescription()
	{
		return $this->_description;
	}

	/**
	 * Set parameter description
	 *
	 * @param string|null $description
	 * @return void
	 */
	public function setDescription($description)
	{
		if (!is_string($description) && (null !== $description)) {
			require_once 'Zend/Server/Reflection/Exception.php';
			throw new Zend_Server_Reflection_Exception('Invalid parameter description');
		}

		$this->_description = $description;
	}
}
